package Window;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.KeyEvent;
import org.eclipse.swt.events.KeyListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.FileDialog;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.ToolBar;
import org.eclipse.swt.widgets.ToolItem;
import com.sun.glass.ui.Cursor;
import Builder.BuilderConfigurationManager;
import Builder.BrickSelectionManager;
import Builder.CopyNPasteManager;
import Command.LDrawColor;
import Command.LDrawColorT;
import Command.LDrawPart;
import Common.Vector3f;
import Connectivity.Direction6T;
import LDraw.Support.ColorLibrary;
import LDraw.Support.type.LDrawGridTypeT;
import Notification.ILDrawSubscriber;
import Notification.INotificationMessage;
import Notification.LDrawColorSelected;
import Notification.LDrawDirectiveModified;
import Notification.NotificationCenter;
import Notification.NotificationMessageT;
import OtherTools.Syringe;
import Resource.ResourceManager;
import UndoRedo.ColorChangeAction;
import UndoRedo.DirectiveAction;
import UndoRedo.LDrawUndoRedoManager;
public class ToolBarHandler extends SelectionAdapter implements KeyListener,
ILDrawSubscriber {
private static final String DefaultResourcePath = "/Resource/Image/toolbar/";
MOCBuilder brickBuilder = null;
Shell shell = null;
ToolItem item_newFile;
ToolItem item_openFile;
ToolItem item_save;
ToolItem item_showStudHoleMatrix;
ToolItem item_connectivityCheck;
ToolItem item_gridCoarse;
ToolItem item_gridMedium;
ToolItem item_gridFine;
ToolItem item_remove;
ToolItem item_snapToGrid;
ToolItem item_collision;
ToolItem item_rotateXClockwise;
ToolItem item_rotateXCClockwise;
ToolItem item_rotateYClockwise;
ToolItem item_rotateYCClockwise;
ToolItem item_rotateZClockwise;
ToolItem item_rotateZCClockwise;
ToolItem item_align_X_L;
ToolItem item_align_X_R;
ToolItem item_align_Y_T;
ToolItem item_align_Y_B;
ToolItem item_align_Z_L;
ToolItem item_align_Z_R;
ToolItem item_align_Rotation;
ToolBar toolBar;
ToolItem item_colorPicker;
ColorPicker colorPicker;
ToolItem item_syringe;
BuilderConfigurationManager configurationManager;
public ToolBarHandler() {
configurationManager = BuilderConfigurationManager.getInstance();
}
public ToolBarHandler(MOCBuilder builder, Shell shell) {
this();
this.brickBuilder = builder;
this.shell = shell;
NotificationCenter.getInstance().addSubscriber(this,
NotificationMessageT.BrickbuilderConfigurationChanged);
NotificationCenter.getInstance().addSubscriber(this,
NotificationMessageT.LDrawPartSelected);
}
@Override
public void widgetSelected(SelectionEvent event) {
try {
ToolItem eventSrc = (ToolItem) event.getSource();
if (eventSrc == item_newFile) {
brickBuilder.newLDrawFile();
}
if (eventSrc == item_openFile) {
if (brickBuilder.checkChanged(shell)) {
final String path;
FileDialog fileDialog = new FileDialog(shell, SWT.OPEN);
fileDialog.setFilterExtensions(new String[] {
"*.ldr;*.mpd;*.dat", "*.*" });
path = fileDialog.open();
if (path == null)
return;
brickBuilder.openFile(path);
}
} else if (eventSrc == item_save) {
if (brickBuilder.getWorkingLDrawFile().path() == null)
brickBuilder.saveAs(shell, null);
else
brickBuilder.saveFile();
} else if (eventSrc == item_showStudHoleMatrix) {
boolean flag = eventSrc.getSelection();
brickBuilder.isVisibleStudHoleMatrix(flag);
} else if (eventSrc == item_gridCoarse) {
// if (item_gridCoarse.getSelection())
BuilderConfigurationManager.getInstance().setGridUnit(
LDrawGridTypeT.Coarse);
NotificationCenter.getInstance().postNotification(
NotificationMessageT.BrickbuilderConfigurationChanged);
} else if (eventSrc == item_gridMedium) {
// if (item_gridMedium.getSelection())
BuilderConfigurationManager.getInstance().setGridUnit(
LDrawGridTypeT.Medium);
NotificationCenter.getInstance().postNotification(
NotificationMessageT.BrickbuilderConfigurationChanged);
} else if (eventSrc == item_gridFine) {
// if (item_gridFine.getSelection())
BuilderConfigurationManager.getInstance().setGridUnit(
LDrawGridTypeT.Fine);
NotificationCenter.getInstance().postNotification(
NotificationMessageT.BrickbuilderConfigurationChanged);
} else if (eventSrc == item_connectivityCheck) {
boolean flag = eventSrc.getSelection();
BuilderConfigurationManager.getInstance().setUseConnectivity(
flag);
NotificationCenter.getInstance().postNotification(
NotificationMessageT.NeedReDraw);
} else if (eventSrc == item_collision) {
boolean flag = eventSrc.getSelection();
BuilderConfigurationManager.getInstance().setUseCollision(flag);
} else if (eventSrc == item_remove) {
DirectiveAction action = new DirectiveAction();
for (LDrawPart part : BrickSelectionManager.getInstance()
.getSelectedPartList())
action.removeDirective(part);
LDrawUndoRedoManager.getInstance().pushUndoAction(action);
brickBuilder.removeSelectedDirective();
GlobalFocusManager.getInstance().forceFocusToMainView();
} else if (eventSrc == item_snapToGrid) {
brickBuilder.snapToGrid();
} else if (eventSrc == item_rotateXClockwise) {
handleRoateSelectedParts(new Vector3f(
BuilderConfigurationManager.getInstance().getGridUnit()
.getRotationValue(), 0, 0));
} else if (eventSrc == item_rotateXCClockwise) {
Vector3f degree = new Vector3f(-BuilderConfigurationManager
.getInstance().getGridUnit().getRotationValue(), 0, 0);
handleRoateSelectedParts(degree);
} else if (eventSrc == item_rotateYClockwise) {
Vector3f degree = new Vector3f(0, BuilderConfigurationManager
.getInstance().getGridUnit().getRotationValue(), 0);
handleRoateSelectedParts(degree);
} else if (eventSrc == item_rotateYCClockwise) {
Vector3f degree = new Vector3f(0, -BuilderConfigurationManager
.getInstance().getGridUnit().getRotationValue(), 0);
handleRoateSelectedParts(degree);
} else if (eventSrc == item_rotateZClockwise) {
Vector3f degree = new Vector3f(0, 0,
-BuilderConfigurationManager.getInstance()
.getGridUnit().getRotationValue());
handleRoateSelectedParts(degree);
} else if (eventSrc == item_rotateZCClockwise) {
Vector3f degree = new Vector3f(0, 0,
BuilderConfigurationManager.getInstance().getGridUnit()
.getRotationValue());
handleRoateSelectedParts(degree);
} else if (eventSrc.equals(item_colorPicker)) {
colorPicker.showDialog();
} else if (eventSrc.equals(item_syringe)) {
handleSyringe();
} else if (eventSrc == item_align_X_L) {
brickBuilder.alignSelectedDirective(Direction6T.X_Minus);
} else if (eventSrc == item_align_X_R) {
brickBuilder.alignSelectedDirective(Direction6T.X_Plus);
} else if (eventSrc == item_align_Y_T) {
brickBuilder.alignSelectedDirective(Direction6T.Y_Plus);
} else if (eventSrc == item_align_Y_B) {
brickBuilder.alignSelectedDirective(Direction6T.Y_Minus);
} else if (eventSrc == item_align_Z_L) {
brickBuilder.alignSelectedDirective(Direction6T.Z_Plus);
} else if (eventSrc == item_align_Z_R) {
brickBuilder.alignSelectedDirective(Direction6T.Z_Minus);
} else if (eventSrc == item_align_Rotation) {
brickBuilder.adjustRotationMatrixForSelectedDirective();
}
} catch (Exception e) {
e.printStackTrace();
}
}
private void handleSyringe() {
if (item_syringe.getSelection()) {
Syringe.getInstance().activate();
} else {
Syringe.getInstance().clear();
}
}
private void handleRoateSelectedParts(Vector3f degree) {
brickBuilder.rotateSelectedDirectiveBy(degree);
}
public void generateToolbar() {
toolBar = new ToolBar(shell, SWT.FLAT | SWT.WRAP);
final GridData toolbarData = new GridData();
toolbarData.horizontalSpan = 2;
toolbarData.horizontalAlignment = SWT.FILL;
toolbarData.widthHint = 700;
toolBar.setLayoutData(toolbarData);
// toolBar.setBackground(BackgroundColorManager.getInstance().getToolbarColor());
Display display = shell.getDisplay();
item_newFile = new ToolItem(toolBar, SWT.None);
item_newFile.setImage(ResourceManager.getInstance().getImage(display,
DefaultResourcePath + "active_new.png"));
item_newFile.setDisabledImage(ResourceManager.getInstance().getImage(
display, DefaultResourcePath + "inactive_new.png"));
item_newFile.addSelectionListener(this);
item_newFile.setToolTipText("NEW");
item_openFile = new ToolItem(toolBar, SWT.None);
item_openFile.setImage(ResourceManager.getInstance().getImage(display,
DefaultResourcePath + "active_open.png"));
item_openFile.setDisabledImage(ResourceManager.getInstance().getImage(
display, DefaultResourcePath + "inactive_open.png"));
item_openFile.addSelectionListener(this);
item_openFile.setToolTipText("OPEN");
item_save = new ToolItem(toolBar, SWT.None);
item_save.setImage(ResourceManager.getInstance().getImage(display,
DefaultResourcePath + "active_save.png"));
item_save.setDisabledImage(ResourceManager.getInstance().getImage(
display, DefaultResourcePath + "inactive_save.png"));
item_save.addSelectionListener(this);
item_save.setToolTipText("SAVE");
ToolItem separator = new ToolItem(toolBar, SWT.SEPARATOR);
item_connectivityCheck = new ToolItem(toolBar, SWT.CHECK);
item_connectivityCheck.setImage(ResourceManager.getInstance().getImage(
display, DefaultResourcePath + "active_checkcntn.png"));
item_connectivityCheck.setDisabledImage(ResourceManager.getInstance()
.getImage(display,
DefaultResourcePath + "inactive_checkcntn.png"));
item_connectivityCheck.addSelectionListener(this);
item_connectivityCheck.setSelection(configurationManager
.isUseConnectivity());
item_connectivityCheck.setToolTipText("Check Connectivity");
item_collision = new ToolItem(toolBar, SWT.CHECK);
item_collision.setImage(ResourceManager.getInstance().getImage(display,
DefaultResourcePath + "active_checkclsn.png"));
item_collision.setDisabledImage(ResourceManager.getInstance().getImage(
display, DefaultResourcePath + "inactive_checkclsn.png"));
item_collision.addSelectionListener(this);
item_collision.setSelection(configurationManager.isUseCollision());
item_collision.setToolTipText("Check Collision");
separator = new ToolItem(toolBar, SWT.SEPARATOR);
item_gridCoarse = new ToolItem(toolBar, SWT.RADIO);
item_gridCoarse.setImage(ResourceManager.getInstance().getImage(
display, DefaultResourcePath + "active_grid-coarse.png"));
item_gridCoarse.setDisabledImage(ResourceManager.getInstance()
.getImage(display,
DefaultResourcePath + "inactive_grid-coarse.png"));
item_gridCoarse.addSelectionListener(this);
item_gridCoarse.setSelection(false);
item_gridCoarse.setToolTipText("Set Grid Unit: Coarse");
item_gridMedium = new ToolItem(toolBar, SWT.RADIO);
item_gridMedium.setImage(ResourceManager.getInstance().getImage(
display, DefaultResourcePath + "active_grid-medium.png"));
item_gridMedium.setDisabledImage(ResourceManager.getInstance()
.getImage(display,
DefaultResourcePath + "inactive_grid-medium.png"));
item_gridMedium.addSelectionListener(this);
item_gridMedium.setSelection(false);
item_gridMedium.setToolTipText("Set Grid Unit: Medium");
item_gridFine = new ToolItem(toolBar, SWT.RADIO);
item_gridFine.setImage(ResourceManager.getInstance().getImage(display,
DefaultResourcePath + "active_grid-fine.png"));
item_gridMedium.setDisabledImage(ResourceManager.getInstance()
.getImage(display,
DefaultResourcePath + "inactive_grid-fine.png"));
item_gridFine.addSelectionListener(this);
item_gridFine.setSelection(false);
item_gridFine.setToolTipText("Set Grid Unit: Fine");
switch (configurationManager.getGridUnit()) {
case Coarse:
item_gridCoarse.setSelection(true);
break;
case Fine:
item_gridFine.setSelection(true);
break;
default:
item_gridMedium.setSelection(true);
break;
}
separator = new ToolItem(toolBar, SWT.SEPARATOR);
item_colorPicker = new ToolItem(toolBar, SWT.None);
item_colorPicker.setImage(ResourceManager.getInstance().getImage(
display, DefaultResourcePath + "active_color.png"));
item_colorPicker.setDisabledImage(ResourceManager.getInstance()
.getImage(display, DefaultResourcePath + "inactive_color.png"));
item_colorPicker.addSelectionListener(this);
colorPicker = new ColorPicker(item_colorPicker, "Set Brick Color");
colorPicker.addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent event) {
Button selectedButton = (Button) event.widget;
LDrawColorT colorT = (LDrawColorT) selectedButton.getData();
colorPicker.setColor(colorT);
LDrawColor color = ColorLibrary.sharedColorLibrary()
.colorForCode(colorT);
boolean moreThanOne = false;
ColorChangeAction colorChangeAction = new ColorChangeAction();
for (LDrawPart directive : BrickSelectionManager.getInstance()
.getSelectedPartList()) {
if (directive instanceof LDrawPart) {
LDrawPart part = (LDrawPart) directive;
colorChangeAction.addColorChangePart(part,
part.getLDrawColor(), color);
((LDrawPart) directive).setLDrawColor(color);
moreThanOne = true;
NotificationCenter.getInstance().postNotification(
NotificationMessageT.LDrawDirectiveDidChange, new LDrawDirectiveModified(part));
}
}
if (moreThanOne)
LDrawUndoRedoManager.getInstance().pushUndoAction(
colorChangeAction);
// selectedButton.getShell().setVisible(false);
NotificationCenter.getInstance().postNotification(
NotificationMessageT.NeedReDraw);
}
@Override
public void widgetDefaultSelected(SelectionEvent event) {
}
});
NotificationCenter.getInstance().addSubscriber(new ILDrawSubscriber() {
@Override
public void receiveNotification(NotificationMessageT messageType,
INotificationMessage msg) {
colorPicker.setColor(((LDrawColorSelected) msg).getColorCode());
}
}, NotificationMessageT.LDrawColorSelected);
item_syringe = new ToolItem(toolBar, SWT.CHECK);
item_syringe.addSelectionListener(this);
item_syringe.setImage(ResourceManager.getInstance().getImage(display,
DefaultResourcePath + "active_colordropper.png"));
item_syringe.setDisabledImage(ResourceManager.getInstance().getImage(
display, DefaultResourcePath + "inactive_colordropper.png"));
separator = new ToolItem(toolBar, SWT.SEPARATOR);
// item_showStudHoleMatrix = new ToolItem(toolBar, SWT.CHECK);
// item_showStudHoleMatrix.setImage(ResourceManager.getInstance()
// .getImage(display,
// DefaultResourcePath + "active_showmatrix.png"));
// item_showStudHoleMatrix.setDisabledImage(ResourceManager.getInstance()
// .getImage(display,
// DefaultResourcePath + "inactive_showmatrix.png"));
// item_showStudHoleMatrix.addSelectionListener(this);
// item_showStudHoleMatrix.setSelection(false);
// item_showStudHoleMatrix.setToolTipText("Show Connectivity Matrix");
//
// separator = new ToolItem(toolBar, SWT.SEPARATOR);
item_remove = new ToolItem(toolBar, SWT.None);
item_remove.setImage(ResourceManager.getInstance().getImage(display,
DefaultResourcePath + "active_delete.png"));
item_remove.setDisabledImage(ResourceManager.getInstance().getImage(
display, DefaultResourcePath + "inactive_delete.png"));
item_remove.addSelectionListener(this);
item_remove.setToolTipText("Delete Selected Brick");
item_remove.setEnabled(false);
separator = new ToolItem(toolBar, SWT.SEPARATOR);
item_snapToGrid = new ToolItem(toolBar, SWT.None);
item_snapToGrid.setImage(ResourceManager.getInstance().getImage(
display, DefaultResourcePath + "active_snaptogrid.png"));
item_snapToGrid.setDisabledImage(ResourceManager.getInstance()
.getImage(display,
DefaultResourcePath + "inactive_snaptogrid.png"));
item_snapToGrid.addSelectionListener(this);
item_snapToGrid.setToolTipText("Snap To Grid");
item_snapToGrid.setEnabled(false);
separator = new ToolItem(toolBar, SWT.SEPARATOR);
item_rotateXCClockwise = new ToolItem(toolBar, SWT.None);
item_rotateXCClockwise.setImage(ResourceManager.getInstance().getImage(
display, DefaultResourcePath + "active_rotatex-ccw.png"));
item_rotateXCClockwise.setDisabledImage(ResourceManager.getInstance()
.getImage(display,
DefaultResourcePath + "inactive_rotatex-ccw.png"));
item_rotateXCClockwise.addSelectionListener(this);
item_rotateXCClockwise.setToolTipText("X CCW");
item_rotateXCClockwise.setEnabled(false);
item_rotateXClockwise = new ToolItem(toolBar, SWT.None);
item_rotateXClockwise.setImage(ResourceManager.getInstance().getImage(
display, DefaultResourcePath + "active_rotatex.png"));
item_rotateXClockwise
.setDisabledImage(ResourceManager.getInstance().getImage(
display, DefaultResourcePath + "inactive_rotatex.png"));
item_rotateXClockwise.addSelectionListener(this);
item_rotateXClockwise.setToolTipText("X CW");
item_rotateXClockwise.setEnabled(false);
item_rotateYCClockwise = new ToolItem(toolBar, SWT.None);
item_rotateYCClockwise.setImage(ResourceManager.getInstance().getImage(
display, DefaultResourcePath + "active_rotatey-ccw.png"));
item_rotateYCClockwise.setDisabledImage(ResourceManager.getInstance()
.getImage(display,
DefaultResourcePath + "inactive_rotatey-ccw.png"));
item_rotateYCClockwise.addSelectionListener(this);
item_rotateYCClockwise.setToolTipText("Y CW");
item_rotateYCClockwise.setEnabled(false);
item_rotateYClockwise = new ToolItem(toolBar, SWT.None);
item_rotateYClockwise.setImage(ResourceManager.getInstance().getImage(
display, DefaultResourcePath + "active_rotatey.png"));
item_rotateYClockwise
.setDisabledImage(ResourceManager.getInstance().getImage(
display, DefaultResourcePath + "inactive_rotatey.png"));
item_rotateYClockwise.addSelectionListener(this);
item_rotateYClockwise.setToolTipText("Y CCW");
item_rotateYClockwise.setEnabled(false);
item_rotateZCClockwise = new ToolItem(toolBar, SWT.None);
item_rotateZCClockwise.setImage(ResourceManager.getInstance().getImage(
display, DefaultResourcePath + "active_rotatez-ccw.png"));
item_rotateZCClockwise.setDisabledImage(ResourceManager.getInstance()
.getImage(display,
DefaultResourcePath + "inactive_rotatez-ccw.png"));
item_rotateZCClockwise.addSelectionListener(this);
item_rotateZCClockwise.setToolTipText("Z CW");
item_rotateZCClockwise.setEnabled(false);
item_rotateZClockwise = new ToolItem(toolBar, SWT.None);
item_rotateZClockwise.setImage(ResourceManager.getInstance().getImage(
display, DefaultResourcePath + "active_rotatez.png"));
item_rotateZClockwise
.setDisabledImage(ResourceManager.getInstance().getImage(
display, DefaultResourcePath + "inactive_rotatez.png"));
item_rotateZClockwise.addSelectionListener(this);
item_rotateZClockwise.setToolTipText("Z CCW");
item_rotateZClockwise.setEnabled(false);
separator = new ToolItem(toolBar, SWT.SEPARATOR);
item_align_X_L = new ToolItem(toolBar, SWT.None);
item_align_X_L.setImage(ResourceManager.getInstance().getImage(display,
DefaultResourcePath + "active_alignx.png"));
item_align_X_L.setDisabledImage(ResourceManager.getInstance().getImage(
display, DefaultResourcePath + "inactive_alignx.png"));
item_align_X_L.addSelectionListener(this);
item_align_X_L.setToolTipText("Align to X");
item_align_X_L.setEnabled(false);
item_align_X_R = new ToolItem(toolBar, SWT.None);
item_align_X_R.setImage(ResourceManager.getInstance().getImage(display,
DefaultResourcePath + "active_alignx-ccw.png"));
item_align_X_R.setDisabledImage(ResourceManager.getInstance().getImage(
display, DefaultResourcePath + "inactive_alignx-ccw.png"));
item_align_X_R.addSelectionListener(this);
item_align_X_R.setToolTipText("Align to X");
item_align_X_R.setEnabled(false);
item_align_Y_T = new ToolItem(toolBar, SWT.None);
item_align_Y_T.setImage(ResourceManager.getInstance().getImage(display,
DefaultResourcePath + "active_aligny.png"));
item_align_Y_T.setDisabledImage(ResourceManager.getInstance().getImage(
display, DefaultResourcePath + "inactive_aligny.png"));
item_align_Y_T.addSelectionListener(this);
item_align_Y_T.setToolTipText("Align to Y");
item_align_Y_T.setEnabled(false);
item_align_Y_B = new ToolItem(toolBar, SWT.None);
item_align_Y_B.setImage(ResourceManager.getInstance().getImage(display,
DefaultResourcePath + "active_aligny-ccw.png"));
item_align_Y_B.setDisabledImage(ResourceManager.getInstance().getImage(
display, DefaultResourcePath + "inactive_aligny-ccw.png"));
item_align_Y_B.addSelectionListener(this);
item_align_Y_B.setToolTipText("Align to Y");
item_align_Y_B.setEnabled(false);
item_align_Z_L = new ToolItem(toolBar, SWT.None);
item_align_Z_L.setImage(ResourceManager.getInstance().getImage(display,
DefaultResourcePath + "active_alignz.png"));
item_align_Z_L.setDisabledImage(ResourceManager.getInstance().getImage(
display, DefaultResourcePath + "inactive_alignz.png"));
item_align_Z_L.addSelectionListener(this);
item_align_Z_L.setToolTipText("Align to Z");
item_align_Z_L.setEnabled(false);
item_align_Z_R = new ToolItem(toolBar, SWT.None);
item_align_Z_R.setImage(ResourceManager.getInstance().getImage(display,
DefaultResourcePath + "active_alignz-ccw.png"));
item_align_Z_R.setDisabledImage(ResourceManager.getInstance().getImage(
display, DefaultResourcePath + "inactive_alignz-ccw.png"));
item_align_Z_R.addSelectionListener(this);
item_align_Z_R.setToolTipText("Align to Z");
item_align_Z_R.setEnabled(false);
item_align_Rotation = new ToolItem(toolBar, SWT.None);
item_align_Rotation.setImage(ResourceManager.getInstance().getImage(
display, DefaultResourcePath + "active_samertn.png"));
item_align_Rotation
.setDisabledImage(ResourceManager.getInstance().getImage(
display, DefaultResourcePath + "inactive_samertn.png"));
item_align_Rotation.addSelectionListener(this);
item_align_Rotation.setToolTipText("Align Rotation");
item_align_Rotation.setEnabled(false);
toolBar.pack();
}
@Override
public void keyPressed(KeyEvent event) {
// System.out.println("keyPressed: " + event.keyCode);
switch (event.keyCode) {
case SWT.ESC:
if (item_syringe.getSelection()) {
item_syringe.setSelection(false);
Syringe.getInstance().clear();
}
}
}
@Override
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void receiveNotification(NotificationMessageT messageType,
INotificationMessage msg) {
if (messageType == NotificationMessageT.BrickbuilderConfigurationChanged) {
shell.getDisplay().asyncExec(new Runnable() {
@Override
public void run() {
BuilderConfigurationManager configuration = BuilderConfigurationManager
.getInstance();
switch (configuration.getGridUnit()) {
case Coarse:
item_gridCoarse.setSelection(true);
item_gridMedium.setSelection(false);
item_gridFine.setSelection(false);
break;
case Medium:
item_gridCoarse.setSelection(false);
item_gridMedium.setSelection(true);
item_gridFine.setSelection(false);
break;
case Fine:
item_gridCoarse.setSelection(false);
item_gridMedium.setSelection(false);
item_gridFine.setSelection(true);
break;
default:
break;
}
}
});
} else if (messageType == NotificationMessageT.LDrawPartSelected) {
shell.getDisplay().asyncExec(new Runnable() {
@Override
public void run() {
boolean isSelect = !BrickSelectionManager.getInstance()
.isEmpty();
item_remove.setEnabled(isSelect);
item_rotateXCClockwise.setEnabled(isSelect);
item_rotateXClockwise.setEnabled(isSelect);
item_rotateYCClockwise.setEnabled(isSelect);
item_rotateYClockwise.setEnabled(isSelect);
item_rotateZCClockwise.setEnabled(isSelect);
item_rotateZClockwise.setEnabled(isSelect);
item_snapToGrid.setEnabled(isSelect);
boolean isSelectSingleBrick = BrickSelectionManager
.getInstance().isSelectSingleBrick();
boolean isSelectMoreThanOne = false;
if (isSelect && isSelectSingleBrick == false)
isSelectMoreThanOne = true;
item_align_Rotation.setEnabled(isSelectMoreThanOne);
item_align_X_L.setEnabled(isSelectMoreThanOne);
item_align_X_R.setEnabled(isSelectMoreThanOne);
item_align_Y_B.setEnabled(isSelectMoreThanOne);
item_align_Y_T.setEnabled(isSelectMoreThanOne);
item_align_Z_L.setEnabled(isSelectMoreThanOne);
item_align_Z_R.setEnabled(isSelectMoreThanOne);
}
});
}
}
}